package pe.edu.upc.dew.puntos.dao;

import pe.edu.upc.dew.puntos.Model.*;
import java.util.ArrayList; 

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.21937F2E-B542-9762-A112-7EDBD025851A]
// </editor-fold> 
public class CtrlRegistroLocal {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.D05C65C8-37DB-528F-BD56-70C17D3EA22C]
    // </editor-fold> 
    private ArrayList<Establecimiento> establecimientos;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A943D30D-BBC2-5ADB-6A9C-0A8AADF517FE]
    // </editor-fold> 
    private ArrayList<Sucursal> sucursales;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.07A4986F-CFF7-F72B-588B-25BCEEB81D76]
    // </editor-fold> 
    private ArrayList<Rubro> rubros;

    private Integer correlativoRubro=0;
    private Integer correlativoEstablecimiento=0;
    private Integer correlativoSucursal=0;
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A459F1BB-0FEE-F9C0-4075-BD6322BA09F0]
    // </editor-fold> 
    public CtrlRegistroLocal () {
        this.rubros = new ArrayList<Rubro>();
        this.establecimientos = new ArrayList<Establecimiento>();
        this.sucursales = new ArrayList<Sucursal>();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.E3EEB1B4-151B-D82E-2B5F-A05174F75DEE]
    // </editor-fold> 
    public ArrayList<Establecimiento> getEstablecimientos () {
        return establecimientos;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.E8E2FFA7-7E71-6D08-5CB7-E234B64DDEDA]
    // </editor-fold> 
    public void setEstablecimientos (ArrayList<Establecimiento> val) {
        this.establecimientos = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.2B9BEFE0-0911-FBA2-9561-3EA15BBB0C73]
    // </editor-fold> 
    public ArrayList<Rubro> getRubros () {
        return rubros;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.E50E8D15-E0E8-51A4-9AD3-4353C6C23639]
    // </editor-fold> 
    public void setRubros (ArrayList<Rubro> val) {
        this.rubros = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.4E35216E-C849-40BA-6460-B9528B4D21B8]
    // </editor-fold> 
    public ArrayList<Sucursal> getSucursales () {
        return sucursales;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.6982DECB-D9C9-3413-76F5-09C0EA50A167]
    // </editor-fold> 
    public void setSucursales (ArrayList<Sucursal> val) {
        this.sucursales = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.41358794-244A-780C-EAED-1BA23EA9F779]
    // </editor-fold> 
    public void registrarRubro (String desRubro) {
        this.correlativoRubro = this.correlativoRubro + 1;
        Rubro nuevoRubro = new Rubro(this.correlativoRubro,desRubro);
        this.rubros.add(nuevoRubro);
    }

    public Rubro registrarRubroNuevo (String desRubro) {
        this.correlativoRubro = this.correlativoRubro + 1;
        Rubro nuevoRubro = new Rubro(this.correlativoRubro,desRubro);
        this.rubros.add(nuevoRubro);
        
        return this.buscarRubro(this.correlativoRubro);
    }
    
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.F1ACC5F8-2748-0FEB-0084-6B1BC0E947F7]
    // </editor-fold> 
    public Rubro buscarRubro (Integer codRubro) {
        Rubro rubroEncontrado=null;
        for(Rubro rubro : this.rubros){
            if(rubro.getCodRubro() == codRubro)
            {  rubroEncontrado = rubro;
                break;
            }
        }    
        return rubroEncontrado;        
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A4A28625-C5DF-A98C-0C3B-AC0340EBB335]
    // </editor-fold> 
    public void eliminarRubro (Integer codRubro) {
        Rubro rubro = this.buscarRubro(codRubro);
        this.rubros.remove(rubro);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.0A89E5E6-D7F3-5FD7-0FE2-3ADC3E07C09A]
    // </editor-fold> 
    public void registrarEstablecimiento (String desEstablecimiento, Rubro rubro) {
        this.correlativoEstablecimiento = this.correlativoEstablecimiento + 1;
        Establecimiento nuevo = new Establecimiento(this.correlativoEstablecimiento,desEstablecimiento,rubro);
        this.establecimientos.add(nuevo);
    }

    public Establecimiento registrarEstablecimientoNuevo (String desEstablecimiento, Rubro rubro) {
        this.correlativoEstablecimiento = this.correlativoEstablecimiento + 1;
        Establecimiento nuevo = new Establecimiento(this.correlativoEstablecimiento,desEstablecimiento,rubro);
        this.establecimientos.add(nuevo);
        
        return this.buscarEstablecimiento(this.correlativoEstablecimiento);
    }
    
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.A36C77B9-4B7E-CA80-A78F-165DAE523D54]
    // </editor-fold> 
    public Establecimiento buscarEstablecimiento (Integer codEstablecimiento) {
        Establecimiento itemEncontrado=null;
        for(Establecimiento establecimiento : this.establecimientos){
            if(establecimiento.getCodEstablecimiento() == codEstablecimiento)
            {  itemEncontrado = establecimiento;
                break;
            }
        }    
        return itemEncontrado;       
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B9EFBA66-6218-C5EB-9B58-7A73BB83517B]
    // </editor-fold> 
    public void eliminarEstablecimiento (Integer codEstablecimiento) {
        Establecimiento item = this.buscarEstablecimiento(codEstablecimiento);
        this.establecimientos.remove(item);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.88B0400C-471B-0E31-0C7E-A4D045264A71]
    // </editor-fold> 
    public void registrarSucursal (String desSucursal, String distrito, String direccion, Establecimiento establecimiento) {
        this.correlativoSucursal = this.correlativoSucursal + 1;
        Sucursal nuevaSucursal = new Sucursal(this.correlativoSucursal,desSucursal,distrito,direccion,establecimiento);
        this.sucursales.add(nuevaSucursal);
    }

    public Sucursal registrarSucursalNuevo (String desSucursal, String distrito, String direccion, Establecimiento establecimiento) {
        this.correlativoSucursal = this.correlativoSucursal + 1;
        Sucursal nuevaSucursal = new Sucursal(this.correlativoSucursal,desSucursal,distrito,direccion,establecimiento);
        this.sucursales.add(nuevaSucursal);
        
        return this.buscarSucursal(this.correlativoSucursal);
    }
    
    
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.2827CFB6-96ED-F613-A688-9EC8F030E8C0]
    // </editor-fold> 
    public Sucursal buscarSucursal (Integer codSucursal) {
        Sucursal itemEncontrado=null;
        for(Sucursal sucursal : this.sucursales){
            if(sucursal.getCodSucursal()== codSucursal)
            {  itemEncontrado = sucursal;
                break;
            }
        }    
        return itemEncontrado; 
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.CF3D460E-17FF-52C1-F0D6-2440F6617198]
    // </editor-fold> 
    public void eliminarSucursal (Integer codSucursal) {
        Sucursal sucursal = this.buscarSucursal(codSucursal);
        this.sucursales.remove(sucursal);
    }

}

